1. Field of the Invention
The present invention relates generally to the recording of data onto optical media, and more particularly to a method for determining actual recording speeds supported by an optical media recorder.
2. Description of the Related Art
When recording data to optical media, a user typically selects from a range of write speeds supported by the selected optical media recording device in accordance with the type and source of data to be recorded, the type of destination media, and the user""s particular recording needs. By way of example, audio data may require extraction from one format of data, to be recorded to an audio compact disc (CD) suitable for playback on an audio system, or on a computer in a different audio data format. A user may desire to copy an entire CD of audio data or data files from one disc to another. A user may be selecting data from a plurality of sources including, for example, another CD, a system hard drive, a remote location by way of an Internet connection, and other such data sources. The user may be recording to CD-R media, or to CD-RW media. Systems, circumstances, and recording needs dictate a plurality of write speeds to provide optimum recording of data to optical media.
When recording data to optical media, a user typically uses a CD recording program to manage the functions of identifying and formatting the destination optical media, assembling and cataloging the selected files to record, reading the data from a source or sources, writing the data to the destination media, and other tasks of managing the recording of selected data to optical media. One of the tasks of recording data that the recording program typically manages is the writing of data to a destination optical media recorder at a selected recording or write speed. Optical media recorders are typically capable of recording at a plurality of speeds, and reading at a plurality of speeds as well. Individual user requirements, the type of destination media, and other such factors determine the optimum speed at which selected data should be written to an optical media, and the recording program typically presents to the user a range of supported speeds for a particular optical media recording device make and model as detected as the destination device.
Typically, in the prior art, the recording speeds presented to a user from which to select for a particular optical media recording device are hard coded into the CD recording software. During the manufacture of the CD recording software program, the specifications of various optical media recording devices are programmed into the software and include manufacturer, model, read and write speeds. When a user launches the program to record a CD, the program might detect the make and model of the destination optical media device, and then present to the user a range of write speeds supported by the make and model as programmed into the software. The manufacturers, models, and write speeds are therefore limited to what is known at the time of manufacture of the program. Additional recording devices and upgrades to existing devices are captured in subsequent upgrades to the software program, but the dynamic nature of hardware and software manufacture and distribution results in many devices absent from the programming code of the software application, and in some cases, incorrect information about the devices that have been subject to upgrade and change is contained in the recording software application.
One solution for the user to be able to use an unsupported or updated recording device is found in the firmware of the recording device itself. When a CD recording software program detects a recording device whose speeds are not contained in the programming code of the application, the software application reads the recording device code which provides the maximum recording speed of the particular device. As is known, peripheral devices such as optical media recording devices contain firmware that implements compatibility with a plurality of operating systems and application programs. A CD recording software application is generally able to identify a compatible optical media recording device, and determine the maximum record or write speed of that device. A significant limitation of this method of determining the write speed of the selected device is that only the maximum write speed of the device is identified. The maximum write speed is the maximum speed for the device itself, and not a maximum speed for a particular optical media. Further, the range of write speeds is not identified, and thus not provided to the user for selection by the CD recording software program.
FIG. 1 illustrates a typical system configuration and an example of a situation in which a user would want to know more than just the maximum write speed of an optical media recording device. FIG. 1 shows a typical user computer system 10 containing a PC tower case 12, a monitor 14, keyboard 16, and mouse 18. The PC tower case 12 can be of any configuration, but generally contains the PC processor, motherboard, a hard drive, and various supplemental or peripheral drives. The monitor 14 provides a graphical user interface for a user to, for example, navigate and operate a CD recording software program. The mouse 18 and keyboard 16 provide the user the ability to select, input, and manipulate data and commands in order to operate the program. In the illustrated example, a user may desire to record data from a source optical drive 20 to a destination optical drive 30, also known as a disc-to-disc copy procedure. In the illustrated example, the optimum recording of the destination optical media might not be at the destination device 30 maximum write speed. If, however, the destination optical media recording device 30 is not known to the CD recording software program, e.g., it was developed and manufactured after the release of the software program, the prior art method of writing to the unknown destination recording device 30 is typically at the speed coded in the destination recording device 30 firmware, which is the device maximum write speed.
If a user attempts to record data to optical media at other than the optimal write speed, numerous errors, failure of data transfer, or actual recording time exceeding expected recording time can all result. In the case where the user selects the maximum write speed of the selected device because the CD recording software has provided that speed as the only selection, errors or failure to record can result if the optical media used is other than that of the rated maximum write speed of the device. Further, if the capability of the recording device to write data to optical media exceeds the capability of the computer system recording engine to transfer data to buffer memory, then buffer under-run occurs. Buffer under-run also results in failure to record, and can destroy the destination optical media if it is not capable of being re-recorded.
In view of the foregoing, there is a need for a method for detecting the write speeds of an optical media recording device. The method should provide a CD recording software application and the user desiring to record data to optical media with the range of write speeds supported by a specific recording device selected as a destination drive in a CD recording operation. The method should be independent of the manufacture and release date of the recording device, and should be able to determine the range of write speeds of recording devices with or without application software updates.
Broadly speaking, the present invention fills these needs by providing a method for dynamically detecting the write speeds of an optical media device. The present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable media. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for determining write speeds of an optical media device is disclosed. The method includes the setting of the optical media device to a maximum write speed as indicated by the device itself, and then verifying the optical media device accepted the setting and indicates to be set at the maximum write speed. The set write speed is then decreased by an increment and re-set, the optical media device verified to indicate the write speed as set, and the process repeated until the device set write speed reaches zero, having started at the maximum write speed and decreasing by an increment until the set write speed is zero. Each time the optical media device is verified to be as just set, the set write speed value is saved. The verified set write speeds are presented as options for user interaction for the optical media device.
In another embodiment, a computer implemented method for dynamically detecting write speeds of an optical media device is disclosed. The computer implemented method includes the setting of a device set write speed to a maximum write speed of the optical media device. The device is verified to be as just set, and the current set write speed of the device is saved if verified to be as just set. The device set write speed is decreased by an increment and re-set, and the computer implemented method repeats the setting, verifying, saving, and decreasing until the set write speed is set to zero. The verified set write speeds are presented as options for user interaction for the optical media device.
In still a further embodiment, a method for dynamically detecting write speeds of an optical media device is disclosed. The method includes the obtaining of a maximum write speed for the optical media device and sending a command to the optical media device to set the maximum write speed. The method next verifies the command was executed as sent, and then saves the maximum write speed to a data structure. The method then determines a next write speed and sends a command to the optical media device to set the next write speed. The command is verified to be executed as sent, and if verified, the next write speed is saved to the data structure. The determining of the next write speed, the sending the command to the optical media device to set the next write speed, the verifying of the command executed as sent, and the saving of the next write speed to the data structure are all repeated for a determined number of iterations. The saved next write speeds are provided for user interaction with the optical media device.
In yet another embodiment, computer readable media having program instructions for dynamically detecting write speeds of an optical media device is disclosed. The computer readable media includes program instructions for determining a maximum write speed of an optical media device, and for setting a set write speed to the maximum write speed of the optical media device. Program instructions are further provided for setting the optical media device to the set write speed and for verifying that an indicated write speed of the optical media device is as just set The set write speed is saved if the indicated write speed of the optical media device is verified to be as just set. The program instructions next provide for decreasing and setting the set write speed by an increment and then repeating the described process until the set write speed is set to zero. Only verified set write speeds are presented as options for user interaction for the optical media device.
The advantages of the present invention are numerous. One notable benefit and advantage of the invention is that all supported write speeds of a selected optical media recording device are presented to a user for selection in accordance with the user""s particular recording circumstances or needs. As described above, the supported write speeds are determined for a particular optical media recording device at the time of program execution, if desired, obviating the need to expend time and resources to program device specifications from an ever expanding plurality of device manufacturers into a software application program during manufacture of the program or in constant production cycle updates. The user is reassured of the accuracy and reliability of the software application program as the supported write speeds are determined real-time and not dependent on software updates, or subject to the errors of later-released devices or device upgrades. The present invention provides a user with more control of the recording operation by determining the range of write speeds supported by a selected optical media device, and allowing the user to select from a range of speeds.
Other advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.